/**
 * Copyright (C) 2006-2015 版权所有者为北京捷越联合信息咨询有限公司。本系统是商用软件,未经授权擅自复制或传播本程序的部分或全部将是非法的。 
 * @title: Request4029DTO.java
 * @package com.jy.modules.cmm.pojo.request
 * @author YJY
 * @date 2015-7-24 下午14:55:10
 * @version v1.00
 * @description: TODO 债权受让-受让债权
 */
package com.jy.modules.cims.data.interact.core.credit.request;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;
import org.springframework.validation.annotation.Validated;

@Validated
public class RequestCreditListDTO {
	
	/**合同编号*/
	@NotBlank(message="合同编号contractNo不能为空")
	private String contractNo;
	
	/**债权编号*/
	@NotBlank(message="债权编号otherCreditId不能为空")
	private String otherCreditId;
	
	/**批次号*/
	@NotBlank(message="批次号batchId不能为空")
	private String batchId;
	
	/**合同金额*/
	@NotNull(message="合同金额contractValue不能为空")
	private BigDecimal contractValue;
	
	/**放款金额*/
	@NotNull(message="放款金额loanValue不能为空")
	private BigDecimal loanValue;
	
	/**贷款人客户编号*/
	@NotBlank(message="贷款人客户编号loanUserId不能为空")
	private String loanUserId;
	
	/**贷款用途*/
	private String loanUse;
	
	/**初始放款日期*/
	@NotNull(message="初始放款日期initialDate不能为空")
	private Date  initialDate;
	
	/**还款起始日期*/
	@NotNull(message="还款起始日期startRepaymentDate不能为空")
	private Date startRepaymentDate;
	
	/**账单日*/
	@NotNull(message="账单日billDate不能为空")
	private Long billDate;
	
	/**交割日期*/
	@NotNull(message="交割日期deliverDate不能为空")
	private Date deliverDate;
	
	/**交割价值*/
	@NotNull(message="交割价值makeCreditorValue不能为空")
	private BigDecimal makeCreditorValue;
	
	/**剩余还款期数（月）*/
	@NotNull(message="剩余还款期数（月）residueRepayPeriod不能为空")
	private Long residueRepayPeriod;
	
	/**还款期数（月）*/
	@NotNull(message="*还款期数（月）repaymentMonth不能为空")
	private Long repaymentMonth;
	
	/**每期还款金额*/
	@NotNull(message="*每期还款金额eachRepaymentValue不能为空")
	private BigDecimal eachRepaymentValue;
	
	/**贷款产品代码*/
	private String loanProductCode;
	
	/**贷款产品名称*/
	@NotBlank(message="贷款产品名称loanProductName不能为空")
	private String loanProductName;
	
	/**贷款产品月利率*/
	@NotNull(message="贷款产品月利率loanMonthlyInterest不能为空")
	private BigDecimal loanMonthlyInterest;
	
	/**还款方式*/
	@NotBlank(message="还款方式repaymentType不能为空")
	private String repaymentType;
	
	/**客户信息*/
	@Valid
	@NotEmpty(message="客户信息custominfoList不能为空")
	private List<RequestCustomInfoListDTO> custominfoList;
	
	/**还款计划*/
	@Valid
	@NotEmpty(message="还款计划paybackList不能为空")
	private List<RequestPayBackListDTO> paybackList;
	
	/**合同类型*/
	@NotBlank(message="合同类型合同类型不能为空")
	private String loanType;
	

	public String getLoanType() {
		return loanType;
	}

	public void setLoanType(String loanType) {
		this.loanType = loanType;
	}

	public String getContractNo() {
		return contractNo;
	}

	public void setContractNo(String contractNo) {
		this.contractNo = contractNo;
	}

	public String getOtherCreditId() {
		return otherCreditId;
	}

	public void setOtherCreditId(String otherCreditId) {
		this.otherCreditId = otherCreditId;
	}

	public String getBatchId() {
		return batchId;
	}

	public void setBatchId(String batchId) {
		this.batchId = batchId;
	}

	public BigDecimal getContractValue() {
		return contractValue;
	}

	public void setContractValue(BigDecimal contractValue) {
		this.contractValue = contractValue;
	}

	public BigDecimal getLoanValue() {
		return loanValue;
	}

	public void setLoanValue(BigDecimal loanValue) {
		this.loanValue = loanValue;
	}

	public String getLoanUserId() {
		return loanUserId;
	}

	public void setLoanUserId(String loanUserId) {
		this.loanUserId = loanUserId;
	}

	public String getLoanUse() {
		return loanUse;
	}

	public void setLoanUse(String loanUse) {
		this.loanUse = loanUse;
	}

	public Date getInitialDate() {
		return initialDate;
	}

	public void setInitialDate(Date initialDate) {
		this.initialDate = initialDate;
	}

	public Date getStartRepaymentDate() {
		return startRepaymentDate;
	}

	public void setStartRepaymentDate(Date startRepaymentDate) {
		this.startRepaymentDate = startRepaymentDate;
	}

	public Long getBillDate() {
		return billDate;
	}

	public void setBillDate(Long billDate) {
		this.billDate = billDate;
	}

	public Date getDeliverDate() {
		return deliverDate;
	}

	public void setDeliverDate(Date deliverDate) {
		this.deliverDate = deliverDate;
	}

	public BigDecimal getMakeCreditorValue() {
		return makeCreditorValue;
	}

	public void setMakeCreditorValue(BigDecimal makeCreditorValue) {
		this.makeCreditorValue = makeCreditorValue;
	}

	public Long getResidueRepayPeriod() {
		return residueRepayPeriod;
	}

	public void setResidueRepayPeriod(Long residueRepayPeriod) {
		this.residueRepayPeriod = residueRepayPeriod;
	}

	public Long getRepaymentMonth() {
		return repaymentMonth;
	}

	public void setRepaymentMonth(Long repaymentMonth) {
		this.repaymentMonth = repaymentMonth;
	}

	public BigDecimal getEachRepaymentValue() {
		return eachRepaymentValue;
	}

	public void setEachRepaymentValue(BigDecimal eachRepaymentValue) {
		this.eachRepaymentValue = eachRepaymentValue;
	}

	public String getLoanProductCode() {
		return loanProductCode;
	}

	public void setLoanProductCode(String loanProductCode) {
		this.loanProductCode = loanProductCode;
	}

	public String getLoanProductName() {
		return loanProductName;
	}

	public void setLoanProductName(String loanProductName) {
		this.loanProductName = loanProductName;
	}

	public BigDecimal getLoanMonthlyInterest() {
		return loanMonthlyInterest;
	}

	public void setLoanMonthlyInterest(BigDecimal loanMonthlyInterest) {
		this.loanMonthlyInterest = loanMonthlyInterest;
	}

	public String getRepaymentType() {
		return repaymentType;
	}

	public void setRepaymentType(String repaymentType) {
		this.repaymentType = repaymentType;
	}

	public List<RequestCustomInfoListDTO> getCustominfoList() {
		return custominfoList;
	}

	public void setCustominfoList(List<RequestCustomInfoListDTO> custominfoList) {
		this.custominfoList = custominfoList;
	}

	public List<RequestPayBackListDTO> getPaybackList() {
		return paybackList;
	}

	public void setPaybackList(List<RequestPayBackListDTO> paybackList) {
		this.paybackList = paybackList;
	}
}
